import axios from "axios";
import store from '../store'

let config = {
  // 每次请求的协议、IP地址。  设置该配置后，每次请求路径都可以使用相对路径，例如"/admin/login"
  baseURL: "http://localhost:8079",
  // 请求超时时间
  timeout: 10000,
  headers: {
    'Content-Type': 'application/json',
  }
}

const instance = axios.create(config)

// 1. 请求拦截
instance.interceptors.request.use(
  // 请求之前做些什么
  config => {
    let token = store.state.user.token
    if (token) {
      // 符合判断条件，做出响应处理，例如携带token
      config.headers['Authorization'] = `Bearer ${token}`
      // 最后返回 config 代表继续发送请求
    }
    const userId = store.state.user.userId;
    if (userId) {
      config.headers['X-User-Id'] = userId;
    }
    const userType = store.state.user.userType;
    if (userType) {
      config.headers['X-User-Type'] = userType;
    }
    return config
  },
  // 请求错误做些什么
  err => {
    this.$message.error("请求失败");
  }
);


// 2. 响应拦截
instance.interceptors.response.use(
  // 对于成功响应的处理
  res => {
    return res;
  },
  // 对于错误响应的处理
  err => {
    console.log(new Error(err))
    this.$message.error("请求失败");
  }
);


// 4. 导出
export default instance